package edu.uoc.tds.pec4.swingx;

import edu.uoc.tds.pec4.common.RemotoInterface;
import edu.uoc.tds.pec4.i18n.GestorIdiomas;
import edu.uoc.tds.pec4.model.TipoUsuario;
import edu.uoc.tds.pec4.model.Usuario;
import java.rmi.RemoteException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;

public class PantallaMenuPrincipal extends javax.swing.JFrame { 
    /** Atributo referido al usuario conectado. */
    private Usuario usuario;
     /** Atributo referido a la instancia del servidor remoto. */
    private RemotoInterface remoto;

    public RemotoInterface getRemoto() {
        return this.remoto;
    }
    
    /**
     * Creates new form PantallaMenuPrincipal
     */
    public PantallaMenuPrincipal() {
        initComponents();
        MyInitComponents();
    }
    
    /**
     * Creates new form PantallaMenuPrincipal
     */
    public PantallaMenuPrincipal(Usuario usuario, RemotoInterface remoto) {
        initComponents();
        this.usuario = usuario;
        this.remoto = remoto;
        MyInitComponents();
    }

    /**
     * This method is called from within the constructor to initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is always
     * regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        jlblImagen = new javax.swing.JLabel();
        jMenuBar1 = new javax.swing.JMenuBar();
        jMenuArchivo = new javax.swing.JMenu();
        jmiSalir = new javax.swing.JMenuItem();
        jMenuUsuarios = new javax.swing.JMenu();
        jmiAltaUsuarios = new javax.swing.JMenuItem();
        jMenuPruebas = new javax.swing.JMenu();
        jmenuPruebas = new javax.swing.JMenuItem();
        jmenuRondas = new javax.swing.JMenuItem();
        jSeparator1 = new javax.swing.JPopupMenu.Separator();
        jmenuPruebasEnInscripcion = new javax.swing.JMenuItem();
        jSeparator2 = new javax.swing.JPopupMenu.Separator();
        jmenuPruebasEnCompeticion = new javax.swing.JMenuItem();
        jSeparator4 = new javax.swing.JPopupMenu.Separator();
        jmenuPruebasenClasificacion = new javax.swing.JMenuItem();
        jMenuEstadisticas = new javax.swing.JMenu();
        jCheckBoxMenuItem1 = new javax.swing.JCheckBoxMenuItem();
        jCheckBoxMenuItem2 = new javax.swing.JCheckBoxMenuItem();
        jCheckBoxMenuItem3 = new javax.swing.JCheckBoxMenuItem();
        jCheckBoxMenuItem4 = new javax.swing.JCheckBoxMenuItem();
        jMenuEstudiante = new javax.swing.JMenu();
        jMenuItem1 = new javax.swing.JMenuItem();
        jSubMenuEstudianteRealizar = new javax.swing.JMenuItem();
        jMenuAyuda = new javax.swing.JMenu();
        jmiAcercaDe = new javax.swing.JMenuItem();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        java.util.ResourceBundle bundle = java.util.ResourceBundle.getBundle("i18n/messages"); // NOI18N
        setTitle(bundle.getString("pantallamenuprincipal.title")); // NOI18N

        jlblImagen.setIcon(new javax.swing.ImageIcon(getClass().getResource("/edu/uoc/tds/pec4/images/logo eOlympics3.jpg"))); // NOI18N
        jlblImagen.setToolTipText("");

        jMenuArchivo.setText(bundle.getString("menu.archivo.text")); // NOI18N

        jmiSalir.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_S, java.awt.event.InputEvent.CTRL_MASK));
        jmiSalir.setText(bundle.getString("menu.salir.text")); // NOI18N
        jmiSalir.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jmiSalirActionPerformed(evt);
            }
        });
        jMenuArchivo.add(jmiSalir);

        jMenuBar1.add(jMenuArchivo);

        jMenuUsuarios.setText(bundle.getString("menu.usuarios.text")); // NOI18N
        jMenuUsuarios.setEnabled(false);

        jmiAltaUsuarios.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_U, java.awt.event.InputEvent.CTRL_MASK));
        jmiAltaUsuarios.setText(bundle.getString("submenu.altausuarios.text")); // NOI18N
        jmiAltaUsuarios.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jmiAltaUsuariosActionPerformed(evt);
            }
        });
        jMenuUsuarios.add(jmiAltaUsuarios);

        jMenuBar1.add(jMenuUsuarios);

        jMenuPruebas.setText(bundle.getString("menu.pruebas.text")); // NOI18N
        jMenuPruebas.setEnabled(false);

        jmenuPruebas.setText("Pruebas");
        jmenuPruebas.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jmenuPruebasActionPerformed(evt);
            }
        });
        jMenuPruebas.add(jmenuPruebas);

        jmenuRondas.setText("Rondas");
        jmenuRondas.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                AbrirPantallajmenuRondas(evt);
            }
        });
        jMenuPruebas.add(jmenuRondas);
        jMenuPruebas.add(jSeparator1);

        jmenuPruebasEnInscripcion.setText("Pruebas en Periodo de Inscripción");
        jmenuPruebasEnInscripcion.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jmenuPruebasEnInscripcionActionPerformed(evt);
            }
        });
        jMenuPruebas.add(jmenuPruebasEnInscripcion);
        jMenuPruebas.add(jSeparator2);

        jmenuPruebasEnCompeticion.setText("Pruebas en Período de Competición");
        jmenuPruebasEnCompeticion.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jmenuPruebasEnCompeticionActionPerformed(evt);
            }
        });
        jMenuPruebas.add(jmenuPruebasEnCompeticion);
        jMenuPruebas.add(jSeparator4);

        jmenuPruebasenClasificacion.setText("Pruebas en Periodo de Clasificación");
        jmenuPruebasenClasificacion.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jmenuPruebasenClasificacionActionPerformed(evt);
            }
        });
        jMenuPruebas.add(jmenuPruebasenClasificacion);

        jMenuBar1.add(jMenuPruebas);

        jMenuEstadisticas.setText(bundle.getString("menu.estadisticas.text")); // NOI18N

        jCheckBoxMenuItem1.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_M, java.awt.event.InputEvent.CTRL_MASK));
        jCheckBoxMenuItem1.setSelected(true);
        jCheckBoxMenuItem1.setText(bundle.getString("Menu.Medallero")); // NOI18N
        jCheckBoxMenuItem1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jCheckBoxMenuItem1ActionPerformed(evt);
            }
        });
        jMenuEstadisticas.add(jCheckBoxMenuItem1);

        jCheckBoxMenuItem2.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_E, java.awt.event.InputEvent.CTRL_MASK));
        jCheckBoxMenuItem2.setSelected(true);
        jCheckBoxMenuItem2.setText(bundle.getString("Menu.InformacionEstudiante")); // NOI18N
        jCheckBoxMenuItem2.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jCheckBoxMenuItem2ActionPerformed(evt);
            }
        });
        jMenuEstadisticas.add(jCheckBoxMenuItem2);

        jCheckBoxMenuItem3.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_O, java.awt.event.InputEvent.CTRL_MASK));
        jCheckBoxMenuItem3.setSelected(true);
        jCheckBoxMenuItem3.setText(bundle.getString("Menu.ResumenOlimpiada")); // NOI18N
        jCheckBoxMenuItem3.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jCheckBoxMenuItem3ActionPerformed(evt);
            }
        });
        jMenuEstadisticas.add(jCheckBoxMenuItem3);

        jCheckBoxMenuItem4.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_F, java.awt.event.InputEvent.CTRL_MASK));
        jCheckBoxMenuItem4.setSelected(true);
        jCheckBoxMenuItem4.setText(bundle.getString("Menu.PruebasFinalizadas")); // NOI18N
        jCheckBoxMenuItem4.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jCheckBoxMenuItem4ActionPerformed(evt);
            }
        });
        jMenuEstadisticas.add(jCheckBoxMenuItem4);

        jMenuBar1.add(jMenuEstadisticas);

        jMenuEstudiante.setText(bundle.getString("menu.estudiante.text")); // NOI18N
        jMenuEstudiante.setEnabled(false);

        jMenuItem1.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_I, java.awt.event.InputEvent.CTRL_MASK));
        jMenuItem1.setText(bundle.getString("submenu.estudiante.Inscripcion")); // NOI18N
        jMenuItem1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jSubMenuEstudianteInscripcionActionPerformed(evt);
            }
        });
        jMenuEstudiante.add(jMenuItem1);

        jSubMenuEstudianteRealizar.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_R, java.awt.event.InputEvent.CTRL_MASK));
        jSubMenuEstudianteRealizar.setText(bundle.getString("submenu.estudiante.RealizarPrueba")); // NOI18N
        jSubMenuEstudianteRealizar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jSubMenuEstudianteRealizarActionPerformed(evt);
            }
        });
        jMenuEstudiante.add(jSubMenuEstudianteRealizar);

        jMenuBar1.add(jMenuEstudiante);

        jMenuAyuda.setText(bundle.getString("menu.ayuda.text")); // NOI18N

        jmiAcercaDe.setText(bundle.getString("menu.acercade.text")); // NOI18N
        jmiAcercaDe.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jmiAcercaDeActionPerformed(evt);
            }
        });
        jMenuAyuda.add(jmiAcercaDe);

        jMenuBar1.add(jMenuAyuda);

        setJMenuBar(jMenuBar1);

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addComponent(jlblImagen, javax.swing.GroupLayout.PREFERRED_SIZE, 398, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(0, 0, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(jlblImagen)
        );

        java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
        setBounds((screenSize.width-414)/2, (screenSize.height-287)/2, 414, 287);
    }// </editor-fold>//GEN-END:initComponents

    private void AbrirPantallajmenuRondas(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_AbrirPantallajmenuRondas
        // TODO add your handling code here:
        try{
            this.abrirPantallaRondasLista();
        }
        catch(RemoteException exc){
            JOptionPane.showMessageDialog(null, exc.getMessage(), GestorIdiomas.getMessage("error"), JOptionPane.ERROR_MESSAGE);
        }
    }//GEN-LAST:event_AbrirPantallajmenuRondas

    private void jmenuPruebasActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jmenuPruebasActionPerformed
        // TODO add your handling code here:
        try{
            this.abrirPantallaPruebas();
        }
        catch(RemoteException exc){
            JOptionPane.showMessageDialog(null, exc.getMessage(), GestorIdiomas.getMessage("error"), JOptionPane.ERROR_MESSAGE);
        }
    }//GEN-LAST:event_jmenuPruebasActionPerformed

    private void jmenuPruebasEnCompeticionActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jmenuPruebasEnCompeticionActionPerformed
        // TODO add your handling code here:
        try{
            this.abrirPantallaPruebasEnCompeticion();
        }
        catch(RemoteException exc){
            JOptionPane.showMessageDialog(null, exc.getMessage(), GestorIdiomas.getMessage("error"), JOptionPane.ERROR_MESSAGE);
        }
    }//GEN-LAST:event_jmenuPruebasEnCompeticionActionPerformed

private void jmenuPruebasEnInscripcionActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jmenuPruebasEnInscripcionActionPerformed
    // TODO add your handling code here:
    try{
        this.abrirPantallaPruebasEnInscripcion();
    }
    catch(RemoteException exc){
        JOptionPane.showMessageDialog(null, exc.getMessage(), GestorIdiomas.getMessage("error"), JOptionPane.ERROR_MESSAGE);
    }// TODO add your handling code here:
}//GEN-LAST:event_jmenuPruebasEnInscripcionActionPerformed

    private void jmiAltaUsuariosActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jmiAltaUsuariosActionPerformed
        try{
            this.abrirPantallaGestionUsuarios();
        }
        catch(RemoteException exc){
            JOptionPane.showMessageDialog(this, exc.detail, GestorIdiomas.getMessage("error"), JOptionPane.ERROR_MESSAGE);
        }
        catch(Exception exc){
            JOptionPane.showMessageDialog(this,GestorIdiomas.getMessage("error.general"), GestorIdiomas.getMessage("error"), JOptionPane.ERROR_MESSAGE);
        }
    }//GEN-LAST:event_jmiAltaUsuariosActionPerformed

    private void jmenuPruebasenClasificacionActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jmenuPruebasenClasificacionActionPerformed
        try {
            // TODO add your handling code here:
            this.abrirPantallaPruebasEnClasificacion();
        }

        catch (RemoteException exc) {
            JOptionPane.showMessageDialog(null, exc.getMessage(), GestorIdiomas.getMessage("error"), JOptionPane.ERROR_MESSAGE);
        }
    }//GEN-LAST:event_jmenuPruebasenClasificacionActionPerformed

    // PantallaEstudianteInscripcion
    private void InscripcionActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_InscripcionActionPerformed
        try {
            // TODO add your handling code here:
            this.abrirPantallaEstudianteInscripcion();
        }

        catch (RemoteException exc) {
            JOptionPane.showMessageDialog(null, exc.getMessage(), GestorIdiomas.getMessage("error"), JOptionPane.ERROR_MESSAGE);
        }
    }//GEN-LAST:event_InscripcionActionPerformed

private void jCheckBoxMenuItem1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jCheckBoxMenuItem1ActionPerformed
        try {
             this.abrirPantallaEstadisticaMedallero();
        }
        catch (RemoteException exc) {
            JOptionPane.showMessageDialog(null, exc.getMessage(), GestorIdiomas.getMessage("error"), JOptionPane.ERROR_MESSAGE);
        }
}//GEN-LAST:event_jCheckBoxMenuItem1ActionPerformed

private void jCheckBoxMenuItem2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jCheckBoxMenuItem2ActionPerformed
        try {
             this.abrirPantallaEstadisticaEstudiante();
        }
        catch (RemoteException exc) {
            JOptionPane.showMessageDialog(null, exc.getMessage(), GestorIdiomas.getMessage("error"), JOptionPane.ERROR_MESSAGE);
        }
    
}//GEN-LAST:event_jCheckBoxMenuItem2ActionPerformed

private void jCheckBoxMenuItem3ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jCheckBoxMenuItem3ActionPerformed
        try {
             this.abrirPantallaEstadisticaResumen();
        }
        catch (RemoteException exc) {
            JOptionPane.showMessageDialog(null, exc.getMessage(), GestorIdiomas.getMessage("error"), JOptionPane.ERROR_MESSAGE);
        }
}//GEN-LAST:event_jCheckBoxMenuItem3ActionPerformed

private void jCheckBoxMenuItem4ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jCheckBoxMenuItem4ActionPerformed
        try {
             this.abrirPantallaEstadisticaPruebasFinalizadas();
        }
        catch (RemoteException exc) {
            JOptionPane.showMessageDialog(null, exc.getMessage(), GestorIdiomas.getMessage("error"), JOptionPane.ERROR_MESSAGE);
        }
}//GEN-LAST:event_jCheckBoxMenuItem4ActionPerformed

    private void jmiSalirActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jmiSalirActionPerformed
        System.exit(0);
    }//GEN-LAST:event_jmiSalirActionPerformed

    private void jmiAcercaDeActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jmiAcercaDeActionPerformed
        JOptionPane.showMessageDialog(this, GestorIdiomas.getMessage("Cliente.title"), GestorIdiomas.getMessage("informacion"), JOptionPane.INFORMATION_MESSAGE);
    }//GEN-LAST:event_jmiAcercaDeActionPerformed

    private void jSubMenuEstudianteRealizarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jSubMenuEstudianteRealizarActionPerformed
        // TODO add your handling code here:
        try {
            // TODO add your handling code here:
            this.abrirPantallaEstudianteRealizarPruebas();
        }

        catch (RemoteException exc) {
            JOptionPane.showMessageDialog(null, exc.getMessage(), GestorIdiomas.getMessage("error"), JOptionPane.ERROR_MESSAGE);
        }
    }//GEN-LAST:event_jSubMenuEstudianteRealizarActionPerformed

    private void jSubMenuEstudianteInscripcionActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jSubMenuEstudianteInscripcionActionPerformed
        // TODO add your handling code here:
        try {
            // TODO add your handling code here:
            this.abrirPantallaEstudianteInscripcion();
        }

        catch (RemoteException exc) {
            JOptionPane.showMessageDialog(null, exc.getMessage(), GestorIdiomas.getMessage("error"), JOptionPane.ERROR_MESSAGE);
        }
    }//GEN-LAST:event_jSubMenuEstudianteInscripcionActionPerformed

    /// PantallaEstudianteInscripcion
    private void abrirPantallaGestionUsuarios() throws RemoteException{
        PantallaGestionUsuarios pantallaGestionUsuarios = new PantallaGestionUsuarios(this, true);
        pantallaGestionUsuarios.setVisible(true);
    }

    //<<FTM
    private void abrirPantallaPruebas() throws RemoteException{
        PantallaPruebas pantallaPruebas = null;
        pantallaPruebas = new PantallaPruebas(this, false);

        pantallaPruebas.setVisible(true);
    }

    private void abrirPantallaRondasLista() throws RemoteException{
        PantallaRondasLista pantallaRondasLista = null;
        pantallaRondasLista = new PantallaRondasLista(this, false);
        pantallaRondasLista.setVisible(true);
    }

    private void abrirPantallaPruebasEnInscripcion() throws RemoteException{
        PantallaPruebasEnInscripcion pantallaPruebasEnInscripcion = null;
        pantallaPruebasEnInscripcion = new PantallaPruebasEnInscripcion(this, false);
        pantallaPruebasEnInscripcion.setVisible(true);
    }
    
    private void abrirPantallaPruebasEnCompeticion() throws RemoteException{
        PantallaPruebasEnCompeticion pantallaPruebasEnCompeticion = new PantallaPruebasEnCompeticion(this, false);
        pantallaPruebasEnCompeticion = new PantallaPruebasEnCompeticion(this, false);

        pantallaPruebasEnCompeticion.setVisible(true);
    }

    private void abrirPantallaPruebasEnClasificacion() throws RemoteException{
        PantallaPruebasEnClasificacion pantallaPruebasEnClasificacion = new PantallaPruebasEnClasificacion(this, false);
        pantallaPruebasEnClasificacion = new PantallaPruebasEnClasificacion(this, false);

        pantallaPruebasEnClasificacion.setVisible(true);
    }
    //>>FTM
    
    // Esteban
    private void abrirPantallaEstudianteInscripcion() throws RemoteException
    {
        PantallaEstudianteInscripcion pantalla = new PantallaEstudianteInscripcion(this, false);
        pantalla.setVisible(true);
    }

    private void abrirPantallaEstudianteRealizarPruebas() throws RemoteException
    {
        PantallaEstudiantePruebasAExamen pantalla = new PantallaEstudiantePruebasAExamen(this, false);
        pantalla.setVisible(true);
    }

    private void abrirPantallaEstadisticaResumen() throws RemoteException{
        PantallaEstadisticaResumen pantallaEstadisticaResumen = null;
        pantallaEstadisticaResumen = new PantallaEstadisticaResumen(this, false);
        pantallaEstadisticaResumen.setVisible(true);
    }
    
     private void abrirPantallaEstadisticaMedallero() throws RemoteException{
         PantallaEstadisticaMedallero pantallaEstadisticaMedallero = null;
         pantallaEstadisticaMedallero = new PantallaEstadisticaMedallero (this, false);
         pantallaEstadisticaMedallero.setVisible(true);
     }

     private void abrirPantallaEstadisticaEstudiante() throws RemoteException{
         PantallaEstadisticaEstudiante pantallaEstadisticaEstudiante = null;
         pantallaEstadisticaEstudiante = new PantallaEstadisticaEstudiante (this, false);
         pantallaEstadisticaEstudiante.setVisible(true);
     }
     
     private void abrirPantallaEstadisticaPruebasFinalizadas() throws RemoteException{
         PantallaEstadisticaPruebasFinalizadas pantallaEstadisticaPruebasFinalizadas = null;
         pantallaEstadisticaPruebasFinalizadas = new PantallaEstadisticaPruebasFinalizadas (this, false);
         pantallaEstadisticaPruebasFinalizadas.setVisible(true);
     }

    //Metodo para obtener una cadena de texto a partir de un dato de tipo fecha
    public String getFormatoFecha(Date fecha){
        SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");

        if(fecha == null)
            return "";

        return sdf.format(fecha);
    }

    private void MyInitComponents(){
        //<<FTM
        this.jmenuPruebas.setText(GestorIdiomas.getMessage("pantallamenuprincipal.pruebas"));
        this.jmenuRondas.setText(GestorIdiomas.getMessage("pantallamenuprincipal.rondas"));
        this.jmenuPruebasEnInscripcion.setText(GestorIdiomas.getMessage("pantallamenuprincipal.pruebaseninscripcion"));
        this.jmenuPruebasEnCompeticion.setText(GestorIdiomas.getMessage("pantallamenuprincipal.pruebasencompeticion"));
        this.jmenuPruebasenClasificacion.setText(GestorIdiomas.getMessage("pantallamenuprincipal.pruebasenclasificacion"));
        //>>

        //<<EJF
        try{
            //Se comprueba a qué clase hace referencia el usuario para habilitar los menus correspondientes
            if (this.remoto.isAdministrador(this.usuario)){
                this.jMenuUsuarios.setEnabled(true);
                this.jMenuEstadisticas.setEnabled(false);
            }else if (this.remoto.isResponsablePrueba(this.usuario)){
                this.jMenuPruebas.setEnabled(true);
                this.jMenuEstadisticas.setEnabled(true);
                this.jCheckBoxMenuItem2.setEnabled(false);
            }else if (this.remoto.isEstudiante(this.usuario)){
                this.jMenuEstudiante.setEnabled(true);
                this.jMenuEstadisticas.setEnabled(true);
                this.jCheckBoxMenuItem3.setEnabled(false);
            }
        }catch(RemoteException exc){
            JOptionPane.showMessageDialog(this, exc.detail, GestorIdiomas.getMessage("error"), JOptionPane.ERROR_MESSAGE);
        }catch(Exception exc){
            JOptionPane.showMessageDialog(this,GestorIdiomas.getMessage("error.general"), GestorIdiomas.getMessage("error"), JOptionPane.ERROR_MESSAGE);
        }
        //>>
    }
    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        /*
         * Set the Nimbus look and feel
         */
        //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
        /*
         * If Nimbus (introduced in Java SE 6) is not available, stay with the
         * default look and feel. For details see
         * http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
         */
        try {
            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
                if ("Nimbus".equals(info.getName())) {
                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
                    break;
                }
            }
        } catch (ClassNotFoundException ex) {
            java.util.logging.Logger.getLogger(PantallaMenuPrincipal.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
            java.util.logging.Logger.getLogger(PantallaMenuPrincipal.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            java.util.logging.Logger.getLogger(PantallaMenuPrincipal.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(PantallaMenuPrincipal.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        }
        //</editor-fold>

        /*
         * Create and display the form
         */
        java.awt.EventQueue.invokeLater(new Runnable() {

            public void run() {
                new PantallaMenuPrincipal().setVisible(true);
            }
        });
    }

    //<<FTM
    public Usuario getUsuario(){
        return this.usuario;
    }

    //>>
    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JCheckBoxMenuItem jCheckBoxMenuItem1;
    private javax.swing.JCheckBoxMenuItem jCheckBoxMenuItem2;
    private javax.swing.JCheckBoxMenuItem jCheckBoxMenuItem3;
    private javax.swing.JCheckBoxMenuItem jCheckBoxMenuItem4;
    private javax.swing.JMenu jMenuArchivo;
    private javax.swing.JMenu jMenuAyuda;
    private javax.swing.JMenuBar jMenuBar1;
    private javax.swing.JMenu jMenuEstadisticas;
    private javax.swing.JMenu jMenuEstudiante;
    private javax.swing.JMenuItem jMenuItem1;
    private javax.swing.JMenu jMenuPruebas;
    private javax.swing.JMenu jMenuUsuarios;
    private javax.swing.JPopupMenu.Separator jSeparator1;
    private javax.swing.JPopupMenu.Separator jSeparator2;
    private javax.swing.JPopupMenu.Separator jSeparator4;
    private javax.swing.JMenuItem jSubMenuEstudianteRealizar;
    private javax.swing.JLabel jlblImagen;
    private javax.swing.JMenuItem jmenuPruebas;
    private javax.swing.JMenuItem jmenuPruebasEnCompeticion;
    private javax.swing.JMenuItem jmenuPruebasEnInscripcion;
    private javax.swing.JMenuItem jmenuPruebasenClasificacion;
    private javax.swing.JMenuItem jmenuRondas;
    private javax.swing.JMenuItem jmiAcercaDe;
    private javax.swing.JMenuItem jmiAltaUsuarios;
    private javax.swing.JMenuItem jmiSalir;
    // End of variables declaration//GEN-END:variables
}
